part of 'use_case.dart';

abstract class WebSavedPaymentMethodRemovalOutput {
  BuiltList<WebPaymentMethod> get webSavedPaymentMethods;
}

class OptimisticWebSavedPaymentMethodRemovalOutput extends Equatable
    implements WebSavedPaymentMethodRemovalOutput {
  const OptimisticWebSavedPaymentMethodRemovalOutput({
    required this.webSavedPaymentMethods,
  });

  @override
  final BuiltList<WebPaymentMethod> webSavedPaymentMethods;

  @override
  List<Object?> get props {
    return [
      webSavedPaymentMethods,
    ];
  }
}

class SuccessfulWebSavedPaymentMethodRemovalOutput extends Equatable
    implements WebSavedPaymentMethodRemovalOutput {
  const SuccessfulWebSavedPaymentMethodRemovalOutput({
    required this.webSavedPaymentMethods,
  });

  @override
  final BuiltList<WebPaymentMethod> webSavedPaymentMethods;

  @override
  List<Object?> get props {
    return [
      webSavedPaymentMethods,
    ];
  }
}

class FailedWebSavedPaymentMethodRemovalOutput extends Equatable
    implements WebSavedPaymentMethodRemovalOutput {
  const FailedWebSavedPaymentMethodRemovalOutput({
    required this.webSavedPaymentMethods,
    required this.failure,
  });

  @override
  final BuiltList<WebPaymentMethod> webSavedPaymentMethods;

  final WebSavedPaymentMethodRemovalFailure failure;

  @override
  List<Object?> get props {
    return [
      webSavedPaymentMethods,
      failure,
    ];
  }
}
